//Biến toàn cục
var content_width = $(window).width();
var content_height = $(window).height() - $(".header").height();
var menu_height = 60;
var $hash = window.location.hash;
var $strHash = $hash.split("/");
var $typeContent = $strHash[1];
var $typeActive = $strHash[2];

var DirectionsDisplay;
var DirectionsService = new google.maps.DirectionsService();
var start;
var end;
var Lat = $(".Lat").val();
var Lng = $(".Lng").val();

//Load Maps Default
function setMaps(status){
    var styles = [
    {
    	"stylers": [
    		{ "invert_lightness": true },
    		{ "color": "#e4e4e4" }
    	]
    },
    {
    	"featureType": "landscape",
    	"stylers": [
    		{ "visibility": "on" },
    		{ "color": "#e4e4e4" }
    	]
    },
    {
    	"featureType": "landscape",
    	"elementType": "labels.text",
    	"stylers": [
    		{ "color": "#000000" },
    		{ "weight": 0.1 }
    	]
    },
    {
    	"featureType": "poi",
    	"stylers": [
    		{ "color": "#e4e4e4" }
    	]
    },
    {
    	"featureType": "poi",
    	"elementType": "labels.text",
    	"stylers": [
    		{ "color": "#000000" },
    		{ "weight": 0.1 }
    	]
    },
    {
    	"featureType": "road",
    	"stylers": [
    		{ "color": "#ffffff" },
    		{ "weight": 2 }
    	]
    },
    {
    	"featureType": "road",
    	"elementType": "icon",
    	"stylers": [
    		{ "color": "#ffffff" }
    	]
    },
    {
    	"featureType": "road.highway",
    	"elementType": "labels.text",
    	"stylers": [
    		{ "color": "#000000" },
    		{ "weight": 0.1 }
    	]
    },
    {
    	"featureType": "road.arterial",
    	"elementType": "labels.text",
    	"stylers": [
    		{ "color": "#000000" },
    		{ "weight": 0.1 }
    	]
    },
    {
      "featureType": "water",
      "elementType": "geometry",
      "stylers": [
        { "color": "#007575" }
      ]
    },
    {
    	"featureType": "road.local",
    	"elementType": "labels.text",
    	"stylers": [
    		{ "color": "#000000" },
    		{ "weight": 0.1 }
    	]
    },
    {
    	"featureType": "transit",
    	"elementType": "labels",
    	"stylers": [
    		{ "color": "#B9A40B" },
    		{ "weight": 0.1 }
    	]
    }
    ];
    
    //Điều hướng bản đồ
    var styledMap = new google.maps.StyledMapType(styles,{name: "Styled Map"});
    DirectionsDisplay = new google.maps.DirectionsRenderer();
    var ViTriMacDinh = new google.maps.LatLng(Lat, Lng);
    var ThuocTinhHienThi = {
        zoom: 18,
        panControl: false,
        mapTypeControl: false,
        center: ViTriMacDinh
    }
    
    HienThiMaps = new google.maps.Map(document.getElementById("map-canvas"), ThuocTinhHienThi);
    
    HienThiMaps.mapTypes.set('map_style', styledMap);
    HienThiMaps.setMapTypeId('map_style');
    DirectionsDisplay.setMap(HienThiMaps);
    
    if(status == 1){
        var marker = new google.maps.Marker({
    		position: ViTriMacDinh,
            map : HienThiMaps,
            animation: google.maps.Animation.DROP,
            icon: Path_Folder+ 'point.png'
    	});
        
        google.maps.event.addListener(marker, 'click', function() {
            $(".iframe-question").trigger("click");
    	});
    }
    
    //Xóa logo Google
    setTimeout(function(){
        $("img[src='http://maps.gstatic.com/mapfiles/api-3/images/google_white2.png']").remove();
    },2000);
}

//Animate Menu Dashboard
function menu_dashboard(){
    $(".menu_dashboard").stop().animate({
        opacity: 1,
        top: content_height/2 - menu_height,
    }, 1500, function() {
        // Animation complete.
    });
}

//Slide and Show Question
function Slide_Question(status){
    if(status == 1){
        $(".box-question").stop().animate({
            opacity: 1,
            left: -423,
        }, 500, "easeOutElastic", function() {
            // Animation complete.
        });
    }else{
        $(".box-question").stop().animate({
            opacity: 1,
            left: 0,
        }, 500, "easeOutElastic", function() {
            // Animation complete.
        });   
    }
}

//Slide and Show Introduce Place
function show_intro_place(){
    $(".map-canvas").animate({
        opacity: 0.25,
        top: -content_height,
    }, 1500, function() {
        $(".box-introduce").fadeIn();
    });
}

function close_intro_place(){
    $(".map-canvas").animate({
        opacity: 1,
        top: 0,
    }, 1500, function() {
        $(".box-introduce").fadeOut();
    });
}

//Auto Complete Waypoint
function waypoint_complete(){
    $(".myPoint").geocomplete({
      map: ".map-canvas",
      details: "form",
      types: ["geocode", "establishment"],
    }).bind("geocode:result", function(event, result){
        start = $(".myPoint").val();
        $(".map-canvas").html("");
        setMaps(0);
        waypoint(start,end);
    });
}

//Whatsnearby
function whatsnearby(){
    var value = $(".type_place").val();
    $("#map-canvas").html("");
    $("#map-canvas").whatsnearby({
        zoom:15,
        width:"100%",
        height:"100%",
        address: end,
		placesRadius: 2000,
		placesTypes: [ value ],
        placesTypesIcon : [ $("."+value).data("icon") ]
    });
}

//Waypoint A to B
function waypoint(start,end){
    
    /* DANH SÁCH CÁC THUỘC TÍNH & CÔNG DỤNG
    * 1. origin            : Địa điểm bắt đầu (Điểm A)
    * 2. destination       : Địa điểm kết thúc (Điểm B)
    * 3. travelMode        : Loại phương tiện (Đi bộ, Xe ôtô,...)
    * 4. transitOptions    : 
    * 5. unitSystem        : Đơn vị tính độ dài
    * 6. durationInTraffic : Tính toàn thời gian đi từ A đến B (Có tính đến điều kiện giao thông hiện tai). Tính năng này chỉ có sẵn cho Maps cho khách hàng kinh doanh.
    * 7. waypoints[]
    * 8. optimizeWaypoints : Tìm đường đi tối ưu nhất.
    * 9. provideRouteAlternatives : Tìm nhiều đường
    * 10.avoidHighways     : Loại bỏ đường cao tốc
    * 11.avoidTolls        : Loại bỏ đường có tính phí đường bộ
    * 12.region            : Chọn khu vực
    * Tham khảo: https://developers.google.com/maps/documentation/javascript/directions
    */
    //if(start != $(".pointB").val()){ $(".myPoint").val(start) }
    //if(end != $(".pointB").val()){ $(".myPoint").val(end) }
    waypoint_complete();
    
    var request = {
        origin: start, //Địa điểm bắt đầu (Điểm A)
        destination: end, //Địa điểm kết thúc (Điểm B)
        waypoints: [],
        optimizeWaypoints: true,
        travelMode: google.maps.TravelMode.DRIVING
    };
    
    DirectionsService.route(request, function(response, status){
        if(status = google.maps.DirectionsStatus.OK){
            DirectionsDisplay.setDirections(response);
            console.log(response);
        }
    });
}

//Khởi tạo jQuery
$(function(){
    //Set Waypoint
    start = $(".pointA").val();
    end = $(".pointB").val();
    Lat = $(".Lat").val();
    Lng = $(".Lng").val();
    
    //Set Maps Size
    $(".wraper").width(content_width);
    $(".wraper").height(content_height);
    
    //Set Location Menu Dashboard
    menu_dashboard();
    
    $(window).resize(function(){
        content_width = $(window).width();
        content_height = $(window).height() - $(".header").height();
        $(".wraper").width(content_width);
        $(".wraper").height(content_height);
        $(".iframe-intro").prev("div").height(content_height);
        menu_dashboard();
    });
    
    //Processs Event Click
    $(".click").click(function(){
        window.location.hash = $(this).attr("href");
        $hash = window.location.hash;
        $strHash = $hash.split("/");
        $typeContent = $strHash[1];
        $typeActive = $strHash[2];
        if($typeActive != undefined){
            if($typeActive != "tim-duong-di"){ $(".box-waypoint").fadeOut(); }else{ $(".box-waypoint").fadeIn(); setMaps(0); waypoint(start,end); }
            if($typeActive != "tim-phuong-tien"){ $(".choice_place").fadeOut(); }else{ $(".choice_place").fadeIn(); whatsnearby(); }
            if($typeActive != "gioi-thieu-dia-diem"){ close_intro_place(); }else{ show_intro_place(); }
            if($typeActive != "bat-dau-thi" && $typeActive != undefined){ $(".box-question").hide(); $("#fancybox-close").trigger("click"); }else{ $(".box-question").show(); Slide_Question(0); $(".btn-show").addClass("show"); }
        }
    });
    
    if($typeActive != "tim-duong-di"){ $(".box-waypoint").fadeOut(); setMaps(1); }else{ $(".box-waypoint").fadeIn(); setMaps(0); waypoint(start,end);}
    if($typeActive != "tim-phuong-tien"){ $(".choice_place").fadeOut(); }else{ $(".choice_place").fadeIn(); whatsnearby(); }
    if($typeActive != "gioi-thieu-dia-diem"){ close_intro_place(); }else{ show_intro_place(); }
    if($typeActive != "bat-dau-thi" && $typeActive != undefined){ $(".box-question").hide(); $("#fancybox-close").trigger("click"); }else{ $(".box-question").show(); Slide_Question(0); $(".btn-show").addClass("show"); }

    //FancyBox Iframe Question
    $(".iframe-question").fancybox({
		width		: '100%',
		height		: $(window).height() - $(".header").height(),
		autoSize	: false,
        autoScale   : false,
		closeClick	: false,
        overlayShow : false,
        type        : 'iframe',
		openEffect	: 'none',
		closeEffect	: 'none'
	});

    //Style Scrollbar
    var nice = $(".box-introduce").niceScroll({touchbehavior:true,cursorcolor:"#fff",cursoropacitymax:0.2,cursorwidth:4});
    
    //Icheck Question
    $('input').iCheck({
        checkboxClass: 'icheckbox_square-yellow',
        radioClass: 'iradio_square-yellow',
        increaseArea: '20%' // optional
    });
    
    //Show/Hide Question
    $(".btn-show").live('click',function(){
        if($(this).hasClass("show")){
            Slide_Question(1);
            $(this).removeClass("show");
        }else{
            Slide_Question(0);
            $(this).addClass("show");
        }
    });
        
    //Search Road - Tìm đường đi - Tìm đường từ B về A.
    $(".waypoint").live('click',function(){
        setMaps(0);
        waypoint(start,end);
    });
    
    $(".point-house").live('click',function(){
        setMaps(0);
        start = $(".pointA").val();
        end = $(".pointB").val();;        
        $(".myPoint").val(start);
        waypoint(start,end);
    });
    
    $(".change_waypoint").live('click',function(){
        var tmp;
        tmp = start; 
        start = end;
        end = tmp;
        waypoint(start,end);
    });
    
    //Question - Câu hỏi
    $(".question").live('click',function(){
        setMaps(1);
    });
    
    //WhatsNearby - Tìm phương tiện lân cận
    $(".whatsnearby").live('click',function(){
        whatsnearby();
    });
    
    $(".type_place").live('change',function(){
        whatsnearby();
    });
    
    //Introduce Place - Giới thiệu địa điển
    $(".intro_place").live('click',function(){
        
    });
});

//Load function SetMaps
//google.maps.event.addDomListener(window,'load',setMaps(1));


